<?php

class Application_Form_Evento extends Zend_Form
{

    public function init()
    {
        $validacaoData = new Zend_Validate_Date('dd/MM/yyyy');
        $validacaoData->setMessages(array( // error messages
            Zend_Validate_Date::INVALID_DATE => 'A data \'%value%\' não é válida.',
            Zend_Validate_Date::FALSEFORMAT => 'O formato de data \'%value%\' não é válido.'
        ));

        $this->clearDecorators();
        $decorators = array(
            array('ViewHelper'),
            array('Errors'),
            array('Label',array(
                'class' => 'leftalign'
            )),
            array('HtmlTag',array('tag' => 'li'))
        );

        $this->setName('evento');

        $id = new Zend_Form_Element_Hidden('id');
        $id->addFilter('Int');

        $evento = new Zend_Form_Element_Text('evento');
        $evento->setLabel('Evento')
            ->addValidator(
                'NotEmpty',
                true,
                array(
                    'messages' => array(
                        'isEmpty' => 'Informe o título do evento!')))
            ->setAttrib('size', 100)
            ->setAttrib('class', 'span5')
            ->setRequired(true)
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->setDecorators($decorators);

        $evento_status = new Zend_Form_Element_Select('evento_status');
        $evento_status->setLabel('Status')
            ->setMultiOptions(array(null))
            ->addMultiOption('Em produção','Em produção')
            ->addMultiOption('Disponível','Disponível')
            ->addMultiOption('Críticas','Críticas')
            ->setAttrib('class', 'span2')
            ->setDecorators($decorators);

        $responsavel_id = new Zend_Form_Element_Select('responsavel_id');
        $responsavel_id->setLabel('Responsável');
        $responsavel_id->setMultiOptions(array(null));
        $usuarios = new Usuarios();
        $rowSet = $usuarios->fetchAll(null,'nome');
        foreach($rowSet as $current)
        {
            $responsavel_id->addMultiOption($current->id,$current->nome);
        }
        $responsavel_id->setDecorators($decorators);

        $mdl_evento_id = new Zend_Form_Element_Text('mdl_evento_id');
        $mdl_evento_id->setLabel('Moodle Evento_id')
            ->setAttrib('size', 15)
            ->setAttrib('class', 'span1')
            ->addFilter('Int');
        $mdl_evento_id->setDecorators($decorators);

        $data_decorators = array(
            'UiWidgetElement',
            array('Errors'),
            array('Label',array(
                'class' => 'leftalign'
            )),
            array('HtmlTag',array('tag' => 'li'))
            );

        $data_inicio = new ZendX_JQuery_Form_Element_DatePicker(
                    'data_inicio',array('jQueryParams' => array(
                        'dateFormat' => 'dd/mm/yy',
                        'defaultDate' => date('',time()) )));
        $data_inicio->setLabel('Data Início')
            ->setRequired ()
            ->setAttrib('class', 'span2')
            ->setDecorators($data_decorators);

        $data_conclusao = new ZendX_JQuery_Form_Element_DatePicker(
                    'data_conclusao',array('jQueryParams' => array(
                        'dateFormat'=>'dd/mm/yy',
                        'defaultDate' => date('',time()) )));
        $data_conclusao->setLabel('Data Conclusão')
            ->setRequired ()
            ->setAttrib('class', 'span2')
            ->setDecorators($data_decorators);

        $obs = new Zend_Form_Element_Textarea('obs');
        $obs->setLabel('Obs')
            ->setAttrib('rows', 5)
            ->setAttrib('class', 'span5')
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->setDecorators($decorators);

        $submit = new Zend_Form_Element_Submit('submit');
        $submit->setAttrib('id', 'submitbutton');
        $submit->setDecorators(array(
            array('ViewHelper'),
            array('HtmlTag',
                array(
                'tag' => 'li',
                'class' => 'submit'))
        ));

        $this->setDecorators(array(
           'FormElements',
            array('HtmlTag',array('tag'=>'ul')),
            array(
                array(
                    'DivTag'=>'HtmlTag'
                ),
                array(
                    'tag'=>'div',
                    'class'=>'FormDiv'
                )
            ),
            'Form'
        ));

        $this->addElements(array(
            $id, 
            $mdl_evento_id, 
            $evento, 
            $evento_status, 
            $responsavel_id, 
            $data_inicio, 
            $data_conclusao, 
            $obs, 
            $submit));
    }


}

